﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;


namespace Model
{
    [Serializable]
   public  class OrdreCollection
    {
        // Attributter
        private List<Ordre> ordrer;		// aggregering af ordrer


        // Konstruktør
        public OrdreCollection()
        {
            ordrer = new List<Ordre>();		// Skab ordrer-list
        }

        // jeg vil implementere en sessioncontroller til den aktuelle ordre, derfor returnerer jeg nu
        // den nyoprettede ordre   *** Ulla
        public Ordre OpretOrdre(int ordrenr, DateTime ordredato, DateTime leveringsdato)
        {
            Ordre ordre = new Ordre(ordrenr, ordredato, leveringsdato);		// skab ordre
            ordrer.Add(ordre);				// placer ordre i liste
            return ordre;
        }

        // ikke nødvendig nu opretter jeg ordrer på aktuelOrdre
        //public void OpretOrdrelinie(int ordrenr, Vare vare, int antal)
        //{
        //    Ordre ordre = FindOrdre(ordrenr);
        //    ordre.Opretordrelinie(vare, antal);
        //}

        public Ordre FindOrdre(int ordrenr)
        {
            foreach (Ordre minOrdre in ordrer)
            {
                if (minOrdre.Ordrenr == ordrenr)
                {
                    return minOrdre;
                }
            }
            return null;
        }

        // find de ordrer, der skal ekspederes
        public List<int> FindOrdrenumreEksp()
        {
            List<int> ordrenumre = new List<int>();

            foreach (Ordre ordre in ordrer)
            {
                if (ordre.SkalEkspederes())
                {
                    ordrenumre.Add(ordre.Ordrenr);
                }
            }
            return ordrenumre;
        }

        // Fjernet fordi den er unødvendig efter indførelse af sessionController *** Ulla
        //public bool KanEkspederes()
        //{
        //    Ordre ordre = FindOrdre(ordrenr);
        //    return ordre.KanEkspederes();
        //}

        // Fjernet fordi den er unødvendig efter indførelse af sessionController *** Ulla
        //public void EkspederOrdre(int ordrenr)
        //{
        //    Ordre ordre = FindOrdre(ordrenr);
        //    ordre.EkspederOrdre();
        //}     
    }
}
